package ui;

import java.util.InputMismatchException;
import java.util.Scanner;

import domein.DomeinController;

public class ConsoleInterface {
	private DomeinController domeinController;
	private Scanner input;
	
	public ConsoleInterface(){
		this.domeinController = DomeinController.getInstance();
		input = new Scanner(System.in);
	}
	
	public void start(){
		System.out.println("Simpel RTS Spel, Iteratie 1");
		toonMenu();
	}
	
	private void toonMenu(){
		System.out.println("1. Start nieuw spel.");
		System.out.println("2. Afsluiten");
		int input = geefInvoer(1,2);
		switch(input){
		case 1: nieuwSpel();
				toonMenu();
			break;
		}
	}
	
	private void nieuwSpel(){
		System.out.println("Nieuw spel starten.");
		System.out.println("Geef je gewenste spelersnaam");
		String naam = input.next();
		domeinController.startNieuwSpel(naam);
		String[] mapInfo = domeinController.geefMapInfo();
		for(String s: mapInfo){
			System.out.print(s + "\t");
			System.out.print("\n");
		}
	}
	/**
	 * Vraagt aan de speler een invoer (getal)
	 * @author Sam Verschueren
	 * @param minInvoer De minimum invoer die de gebruiker mag geven.
	 * @param maxInvoer De maximum invoer die de gebruiker mag geven.
	 * @return De keuze van de gebruiker indien deze binnen de grenzen minInvoer en maxInvoer ligt.
	 */
	private int geefInvoer(int minInvoer, int maxInvoer) {
		boolean geldigeKeuze=false;
		int keuze=0;
		
		do {
			try {
				keuze = input.nextInt();
				
				if(keuze >= minInvoer && keuze <= maxInvoer) {
					geldigeKeuze = true;
				}
				else {
					System.out.println("Geef een geldige keuze...");
				}
			}
			catch(InputMismatchException e) {
				System.out.println("Geef een geldige keuze...");
			
				input = new Scanner(System.in);
			}
		} while(!geldigeKeuze);
		
		return keuze;
	}
}
